Traditionally, development of radio communication products involves significant hardware development effort. Software defined radio (SDR) is a technology that implements physical layer wireless communication technologies in software, turning many radio-related hardware development problems into software issues. This can shorten the product development cycle, reduce costs, and make product distribution much easier. Moreover, SDR provides increased flexibility and programmability, which can speed up innovation in wireless communications.
SDR platforms have been developed using a personal computer's central processing unit (CPU), working in connection with a field programmable gate array (FPGA), with some radio frequency (RF) front end hardware to receive and transmit radio waveforms. Some SDR applications require complex modulation or computationally intensive algorithms that may include Fast Fourier Transforms (FFTs), cross-correlation, or the calculation of mutual information metrics. These operations can be costly in terms of processing power. A CPU working in connection with an FPGA may lack the computing architecture to support these applications. More recently, SDR platforms have been developed using a CPU working in connection with a graphics processing unit (GPU). However, a GPU working in connection with a CPU may lack the streaming or serial processing capabilities to fulfill the real-time requirements of digital communication algorithms that perform serial processing.
It is an object of the present invention to obviate or mitigate at least one of the above disadvantages.